"""
ConnLLM提供者接口定义
定义与LLM交互的标准接口
"""
from abc import ABC, abstractmethod
from typing import List, Dict, Generator, Any, Optional

class IProvider(ABC):
	"""LLM提供商接口，定义最小化的必要方法"""
	
	@abstractmethod
	def complete(self, messages: List[Dict[str, Any]], stream: bool = False) -> str:
		"""
		获取LLM完成结果
		
		Args:
			messages: 消息列表，格式为[{"role": "user", "content": "..."}]
			stream: 是否使用流式响应
			
		Returns:
			完成的文本
		"""
		pass
		
	@abstractmethod
	def complete_stream(self, messages: List[Dict[str, Any]]) -> Generator[str, None, None]:
		"""
		获取LLM流式完成结果
		
		Args:
			messages: 消息列表
			
		Returns:
			流式响应生成器
		"""
		pass
